package com.grupobbva.seguridad.client.service;

import java.util.StringTokenizer;
import java.util.Vector;

import javax.servlet.http.HttpServletRequest;
/*
 * Clase agregada de libreria ldapp2, 
 * Quita dependencia de ldpapp
 * Agregado 06/09/12
 * */
public class ServiciosSeguridadBbva {

	HttpServletRequest req;
	String Usuario;
	String Password;
	String FuenteAutenticacion;
	Vector vectorGrupos;

	public ServiciosSeguridadBbva(HttpServletRequest req) {
		this.req = req;
	}

	public String getFuenteAutenticacion() {
		return this.FuenteAutenticacion;
	}

	public String getPassword() {
		return this.Password;
	}

	public String getUsuario() {
		return this.Usuario;
	}

	public Vector getVectorGrupos() {
		return this.vectorGrupos;
	}

	public void obtener_ID() {
		this.Usuario = "No Autenticado";
		this.FuenteAutenticacion = "Ninguna";
		boolean AutenticacionOK = false;

		String PolicyUser = new String();
		String PolicyGroup = new String();
		StringTokenizer tokenizerGrupos = null;
		String aux = null;
		String Header = new String();

		Header = this.req.getHeader("iv-user");
		if (Header != null) {
			PolicyUser = Header;
			Header = this.req.getHeader("iv-groups");
			if (Header != null) {
				PolicyGroup = Header;
				this.vectorGrupos = new Vector();
				tokenizerGrupos = new StringTokenizer(PolicyGroup, ",");
				while (tokenizerGrupos.hasMoreTokens()) {
					aux = tokenizerGrupos.nextToken();
					System.out.println(aux.substring(1, aux.length() - 1));
					this.vectorGrupos.addElement(aux.substring(1,
							aux.length() - 1));
				}
			} else {
				PolicyGroup = "Sin Grupo";
			}
			this.Usuario = PolicyUser;
			this.FuenteAutenticacion = "Policy";
			AutenticacionOK = true;
		} else {
			PolicyUser = "No Autenticado";
		}

		Header = this.req.getHeader("sciv-user");
		if (Header != null) {
			PolicyUser = Header;
			Header = this.req.getHeader("sciv-groups");
			if (Header != null) {
				PolicyGroup = Header;
				this.vectorGrupos = new Vector();
				tokenizerGrupos = new StringTokenizer(PolicyGroup, ",");
				while (tokenizerGrupos.hasMoreTokens()) {
					aux = tokenizerGrupos.nextToken();
					System.out.println(aux.substring(1, aux.length() - 1));
					this.vectorGrupos.addElement(aux.substring(1,
							aux.length() - 1));
				}
			} else {
				PolicyGroup = "Sin Grupo";
			}
			this.Usuario = PolicyUser;
			this.FuenteAutenticacion = "Policy";
			AutenticacionOK = true;
		} else {
			PolicyUser = "No Autenticado";
		}

		if (!AutenticacionOK) {
			this.FuenteAutenticacion = "Aplicacion";
			String UsuarioAplicacion = new String();
			String PasswordAplicacion = new String();
			UsuarioAplicacion = this.req.getParameter("username");
			PasswordAplicacion = this.req.getParameter("password");
			this.Usuario = UsuarioAplicacion.toUpperCase();
			this.Password = PasswordAplicacion;
			if ((this.Usuario != null) && (this.Password != null))
				AutenticacionOK = true;
		}
	}
}